<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON预览</title>
</head>
<body>
    <script type="text/javascript">
        // 1. 什么是 JSON?
        //     javaScript Object Notation , 简称 JSON ,
        //     中文称 JavaScript 对象标记, 是一种数据交换格式(比如说 JS 和 JAVA 交换数据)
        //     JSON 是一种行业内的数据交换格式, 在 JS 中, JSON 以对象的形式存在
        //     主要作用是: 一种标准的数据交换格式.(目前非常流行, 系统A和系统B交换数据, 采用JSON)
        // 2. JSON 是一种轻量级的, 标准的数据交换格式,
        //     特点是: 体积小, 易解析
        // 3. 在实际的开发中, 有两种数据交换的格式使用最多吗另一种是 XML
        //     XML(可扩展标记语言) 体积较大, 解析麻烦, 但是优点是语法严谨(通常银行方面使用的就是XML)
        // 4. JSON 的语法格式
        //     var jsonObj = {
        //         "属性名": "属性值",
        //         "属性名": "属性值",
        //         "属性名": "属性值",
        //         ......
        //     };
/*
        举个例子:
        C语言的系统和 java 系统交互学生信息数据
        C语言先将数据从底层的数据库中查找出来, 通过工具打包成下面这种类型
        (XML文件)发送给 java 系统
        java 系统将这些解析, 变成自己可以识别的信息

        <?xml version="1.0" encoding="GBK"?>
        <!--HTML和XML有一个父亲：SGML（标准通用的标记语言。）
        HTML主要做页面展示：所以语法松散。很随意。
        XML主要做数据存储和数据描述的：所以语法相当严格。 -->
        <students>
            <student sno="110">
                <sname>张三</sname>
                <sex>男</sex>
            </student>

            <student sno="120">
                <sname>李四</sname>
                <sex>男</sex>
            </student>

            <student sno="130">
                <sname>王五</sname>
                <sex>男</sex>
            </student>
        </students>

 */
        // 创建 json 对象
        var stuObj = {
            "sno" : "110",
            "sname" : "张三",
            "sex" : "男"
        };
        // 访问 JSON 对象的属性
        alert(stuObj.sno + "," + stuObj.sname + "," + stuObj.sex)

        // for in 访问 JSON 属性
        for (var i in stuObj) {
            alert(stuObj[i]);
        }

        // JS 中的普通对象
        Student = function (sno, sname, sex) {
            this.sno = sno;
            this.sname = sanme;
            this.sex = sex;
        }
        var stu = new Student("110", "张三", "男");

        // JSON 和普通对象相比, 没有类型
        // 所以 JSON 也可称为无类型对象. (特点: 轻量级, 体积小, 易解析)
        // JSON 数组
        // 可见上面的 XML 的文件很复杂, 解析也是先从根节点在向子节点解析, 很复杂
        // 而 JSON 相对简单, 解析也很方便
        var stus = [
            {"sno":"110","sname":"张三","sex":"男"},
            {"sno":"111","sname":"李四","sex":"男"},
            {"sno":"112","sname":"王五","sex":"女"}
        ];
    </script>
</body>
</html>